Dependencias funcionales
Si se tienen 2 o más atributos que tienen más de un valor asociado con determinado objeto y que son independientes entre sí, se tendrán que repetir todos los valores de uno de los atributos con cada valor del otro atributo manteniendo la misma referencia para los objetos, para que las tuplas de la relación sigan siendo consistentes. Esta restricción se especifica con una dependencia multivaluada.
Una descomposición
Un atributo del esquema relación R es primo si es miembro de alguna clave de R.
X -> Y es una df parcial si es posible eliminar un atributo A de X, y la df sigue siendo válida.
Una df X->Y en un er R es una df transitiva si existe un conjunto de atributos Z que no sea un subconjunto de una clave de R, y se cumplen tanto X->Z como Z->Y.
Por cada entidad, una tabla.
Por cada atributo multivaluado, una tabla.
El arbol canónico:
Pipelined: hay operadores que se ejecutan simultáneamente y pueden pasarse los resultados a medida que se generan. No necesita grabar los resultado intermedios. Ejemplo: Proyección.
No Pipelined: los operadores se ejecutan secuencialmente y es necesario grabar resultados intermedios. Ejemplo: Selección y Join.
Dos operaciones (r o w) están en conflicto si cumplen a la vez las siguientescondiciones:
Para todo par de operaciones en conflicto de
Un historia H es serializable si su grafo de seriabilidad es acíclico.
Una historia es Recuperable si ninguna transacción confirma hasta que confirmaron todas las transacciones desde las cuales leyó ítems. (Los commits están en el mismo orden que el flujo de datos).
Una historia Evita Abortos en Cascada si ninguna transacción lee de transacciones no confirmadas. (Los commits tienen que estar antes de los read siguientes).
Una historia es Estricta si ninguna transacción lee o escribe hasta que todas las transacciones que escribieron ese ítem fueron confirmadas. (Los commits tienen que estar antes de los read o write siguientes).
Asegura seriabilidad